package com.ruoyi.common.domain.qo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Transient;
import com.ruoyi.common.domain.po.BasePO;
import com.ruoyi.common.enums.BaseInteger;
import com.ruoyi.common.enums.BaseIsDeletedEnum;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

@Data
@NoArgsConstructor
@AllArgsConstructor
@SuperBuilder
public class BaseQO<P extends BasePO> implements Serializable {
    private Long id;
    private Date gmtCreate;
    private Date gmtModified;
    private BaseIsDeletedEnum isDeleted;
    private Long createId;
    private Long modifiedId;
    @Transient
    private List<String> columns;
    @Transient
    private List<String> whereFieldSorts;
    @Transient
    private Integer pageNum;
    @Transient
    private Integer pageSize;

    @Transient
    private P updatePO;
    /**
     * 默认false。如果为false，并且columns有值，则表示表中的字段不包含columns中的字段。如果为true，表示表中的字段包含columns中的字段
     */
    @Transient
    public boolean isInclude;
}
